home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / perl5000.zip / perl5000 / XSUB.h < prev   
C/C++ Source or Header  |  1994-10-17  |  577b  |  23 lines

  1. #define ST(off) stack_base[ax + off]
  2.  
  3. #ifdef CAN_PROTOTYPE
  4. #define XS(name) void name(CV* cv)
  5. #else
  6. #define XS(name) void name(cv) CV* cv;
  7. #endif
  8.  
  9. #define dXSARGS                \
  10.     dSP; dMARK;            \
  11.     I32 ax = mark - stack_base + 1;    \
  12.     I32 items = sp - mark
  13.  
  14. #define XSANY CvXSUBANY(cv)
  15.  
  16. #define dXSI32 I32 ix = XSANY.any_i32
  17.  
  18. #define XSRETURN(off) stack_sp = stack_base + ax + ((off) - 1); return
  19.  
  20. #define XSRETURNNO    ST(0)=sv_mortalcopy(&sv_no); XSRETURN(1)
  21. #define XSRETURNYES   ST(0)=sv_mortalcopy(&sv_yes); XSRETURN(1)
  22. #define XSRETURNUNDEF ST(0)=sv_mortalcopy(&sv_undef); XSRETURN(1)
  23.